CPU 686
BITS 32
%define EOI 20h ; define EOI como valendo 0x20
%define PIC1_CMD  20h
extern _num_mili ; declara _num_mili como acessivel a modulos escritos em C
extern _tempo_decorrido ; declara _tempo_decorrido como acessivel a modulos escritos em C
global _t0_isr ; o handler tambem deve ser global, para ser instalado
section .data ; .data e a zona de dados inicializados
;_num_mili dd 0 ; declara variavel _num_mili com 4 bytes (dd) e inicializa-a com 0
counter dd 1000
section .text ; .text e a zona de codigo
_t0_isr: ; deve ser global para ser acedida em modulos escritos em C
	push eax ; todos os registos utilizados na rotina
	inc dword [_num_mili]
	dec dword [counter]
	jnz fim	
	mov dword [counter], 1000
	inc dword [_tempo_decorrido]
fim:	
 ; instrucoes da rotina
	mov al, EOI ; sinaliza EOI para o PIC-1
	out PIC1_CMD, al
	pop eax
iretd
END